1. Field of Invention
This invention relates generally to computer networking and more specifically to automatic network optimization.
2. Description of the Related Art
Generally, network devices such as servers, computers, and routers communicate data with one another in a communication network. If large amounts of data are sent via the communication network, communications can take considerable time to transmit and/or be received. Further, it may be necessary to encrypt sensitive data before transmission over the communication network.
To allow the network devices to communicate more efficiently and/or securely, data may be compressed and/or encrypted prior to being sent from one network device to another via the communication network. However, the network device receiving the data must be capable of decompressing and/or decrypting the data. In instances where the data is compressed, the network device receiving the compressed data requires the ability to decompress the data. Likewise, in instances where the data is encrypted, the network device receiving the encrypted data requires an ability to decrypt the data.
In typical communication networks, the network devices are not identically equipped to encrypt, decrypt, compress, and/or decompress data. Thus, a network device transmitting data must either track or otherwise identify which network devices are capable of performing various compression and/or encryption mechanisms prior to the transmission of data.
Currently, this information may be stored on a device-by-device basis as a set of heuristics such as “if sending data to device A, encrypt data using encryption mechanism B.” However, this method is not efficient in a communication network connecting a very large number of network devices and in networks where the network devices may spontaneously connect or disconnect from the communication network. Further, this method may only be effective when all network devices are within a tightly controlled network whereby each device is previously identified and specifically configured to receive the encrypted or decompressed transmitted data.
In some communication networks, the devices may communicate encryption and/or compression capabilities by sending queries to other devices in the communication network for their respective capabilities. These queries are included in a payload of, for example, an Internet Protocol (IP) data packet. To process the queries, the sending device and the receiving device both require an additional software client even if the receiving device has no capabilities. Furthermore, the queries and responses contribute to the amount of network traffic and further slow down communication between the network devices.